// import 'package:flutter/material.dart';
//
// class SelectorItem<T> {
//   T value;
//   Widget child;
//
//   SelectorItem({
//     required this.value,
//     required this.child,
//   });
//
//   @override
//   String toString() {
//     return super.toString();
//   }
// }
//
// class Selector<T> extends StatefulWidget {
//   final String title;
//   final Widget icon;
//   final List<SelectorItem> items;
//
//   const Selector({
//     Key? key,
//     required this.title,
//     required this.items,
//     this.icon = const Icon(Icons.add),
//   }) : super(key: key);
//
//   @override
//   State<Selector> createState() => _SelectorState();
// }
//
// class _SelectorState<T> extends State<Selector<T>> {
//   late String _currTitle;
//
//   @override
//   void initState() {
//     super.initState();
//     _currTitle = widget.title;
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return GestureDetector(
//       child: Row(
//         children: [
//           Text(widget.title),
//           widget.icon,
//         ],
//       ),
//       onTap: () {
//         PopupMenuButton<int>(
//           itemBuilder: (ctx) {
//             return widget.items
//                 .map(
//                   (e) => PopupMenuItem<int>(
//                     value: e.value,
//                     child: e.value.child,
//                   ),
//                 )
//                 .toList();
//           },
//           onSelected: (index) {
//             setState(() {
//               _currTitle = widget.items[index].toString();
//             });
//           },
//           offset: Offset.zero,
//         );
//       },
//     );
//   }
// }
